home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 January: Mac OS SDK / Dev.CD Jan 99 SDK1.toast / Development Kits / Interfaces&Libraries / Universal / Interfaces / PInterfaces / QD3DLight.p < prev    next >
Encoding:
Text File  |  1998-08-17  |  8.5 KB  |  199 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        QD3DLight.p
  3.  
  4.      Contains:    Generic light routines                                             
  5.  
  6.      Version:    Technology:    Quickdraw 3D 1.5.4
  7.                  Release:    Universal Interfaces 3.2
  8.  
  9.      Copyright:    © 1995-1998 by Apple Computer, Inc., all rights reserved.
  10.  
  11.      Bugs?:        For bug reports, consult the following page on
  12.                  the World Wide Web:
  13.  
  14.                      http://developer.apple.com/bugreporter/
  15.  
  16. }
  17. {$IFC UNDEFINED UsingIncludes}
  18. {$SETC UsingIncludes := 0}
  19. {$ENDC}
  20.  
  21. {$IFC NOT UsingIncludes}
  22.  UNIT QD3DLight;
  23.  INTERFACE
  24. {$ENDC}
  25.  
  26. {$IFC UNDEFINED __QD3DLIGHT__}
  27. {$SETC __QD3DLIGHT__ := 1}
  28.  
  29. {$I+}
  30. {$SETC QD3DLightIncludes := UsingIncludes}
  31. {$SETC UsingIncludes := 1}
  32.  
  33. {$IFC UNDEFINED __QD3D__}
  34. {$I QD3D.p}
  35. {$ENDC}
  36.  
  37.  
  38. {$PUSH}
  39. {$ALIGN POWER}
  40. {$LibExport+}
  41.  
  42. {*****************************************************************************
  43.  **                                                                             **
  44.  **                            Enum Definitions                                 **
  45.  **                                                                             **
  46.  ****************************************************************************}
  47.  
  48. TYPE
  49.     TQ3AttenuationType             = LONGINT;
  50. CONST
  51.     kQ3AttenuationTypeNone        = {TQ3AttenuationType}0;
  52.     kQ3AttenuationTypeInverseDistance = {TQ3AttenuationType}1;
  53.     kQ3AttenuationTypeInverseDistanceSquared = {TQ3AttenuationType}2;
  54.  
  55.  
  56.  
  57. TYPE
  58.     TQ3FallOffType                 = LONGINT;
  59. CONST
  60.     kQ3FallOffTypeNone            = {TQ3FallOffType}0;
  61.     kQ3FallOffTypeLinear        = {TQ3FallOffType}1;
  62.     kQ3FallOffTypeExponential    = {TQ3FallOffType}2;
  63.     kQ3FallOffTypeCosine        = {TQ3FallOffType}3;
  64.  
  65.  
  66. {*****************************************************************************
  67.  **                                                                             **
  68.  **                            Data Structure Definitions                         **
  69.  **                                                                             **
  70.  ****************************************************************************}
  71.  
  72. TYPE
  73.     TQ3LightDataPtr = ^TQ3LightData;
  74.     TQ3LightData = RECORD
  75.         isOn:                    TQ3Boolean;
  76.         brightness:                Single;
  77.         color:                    TQ3ColorRGB;
  78.     END;
  79.  
  80.     TQ3DirectionalLightDataPtr = ^TQ3DirectionalLightData;
  81.     TQ3DirectionalLightData = RECORD
  82.         lightData:                TQ3LightData;
  83.         castsShadows:            TQ3Boolean;
  84.         direction:                TQ3Vector3D;
  85.     END;
  86.  
  87.     TQ3PointLightDataPtr = ^TQ3PointLightData;
  88.     TQ3PointLightData = RECORD
  89.         lightData:                TQ3LightData;
  90.         castsShadows:            TQ3Boolean;
  91.         attenuation:            TQ3AttenuationType;
  92.         location:                TQ3Point3D;
  93.     END;
  94.  
  95.     TQ3SpotLightDataPtr = ^TQ3SpotLightData;
  96.     TQ3SpotLightData = RECORD
  97.         lightData:                TQ3LightData;
  98.         castsShadows:            TQ3Boolean;
  99.         attenuation:            TQ3AttenuationType;
  100.         location:                TQ3Point3D;
  101.         direction:                TQ3Vector3D;
  102.         hotAngle:                Single;
  103.         outerAngle:                Single;
  104.         fallOff:                TQ3FallOffType;
  105.     END;
  106.  
  107. {*****************************************************************************
  108.  **                                                                             **
  109.  **                    Light routines (apply to all TQ3LightObjects)             **
  110.  **                                                                             **
  111.  ****************************************************************************}
  112. FUNCTION Q3Light_GetType(light: TQ3LightObject): TQ3ObjectType; C;
  113. FUNCTION Q3Light_GetState(light: TQ3LightObject; VAR isOn: TQ3Boolean): TQ3Status; C;
  114. FUNCTION Q3Light_GetBrightness(light: TQ3LightObject; VAR brightness: Single): TQ3Status; C;
  115. FUNCTION Q3Light_GetColor(light: TQ3LightObject; VAR color: TQ3ColorRGB): TQ3Status; C;
  116. FUNCTION Q3Light_SetState(light: TQ3LightObject; isOn: TQ3Boolean): TQ3Status; C;
  117. FUNCTION Q3Light_SetBrightness(light: TQ3LightObject; brightness: Single): TQ3Status; C;
  118. FUNCTION Q3Light_SetColor(light: TQ3LightObject; {CONST}VAR color: TQ3ColorRGB): TQ3Status; C;
  119. FUNCTION Q3Light_GetData(light: TQ3LightObject; VAR lightData: TQ3LightData): TQ3Status; C;
  120. FUNCTION Q3Light_SetData(light: TQ3LightObject; {CONST}VAR lightData: TQ3LightData): TQ3Status; C;
  121.  
  122. {*****************************************************************************
  123.  **                                                                             **
  124.  **                            Specific Light Routines                               **
  125.  **                                                                             **
  126.  ****************************************************************************}
  127. {*****************************************************************************
  128.  **                                                                             **
  129.  **                            Ambient Light                                       **
  130.  **                                                                             **
  131.  ****************************************************************************}
  132. FUNCTION Q3AmbientLight_New({CONST}VAR lightData: TQ3LightData): TQ3LightObject; C;
  133. FUNCTION Q3AmbientLight_GetData(light: TQ3LightObject; VAR lightData: TQ3LightData): TQ3Status; C;
  134. FUNCTION Q3AmbientLight_SetData(light: TQ3LightObject; {CONST}VAR lightData: TQ3LightData): TQ3Status; C;
  135.  
  136. {*****************************************************************************
  137.  **                                                                             **
  138.  **                        Directional Light                                     **
  139.  **                                                                             **
  140.  ****************************************************************************}
  141. FUNCTION Q3DirectionalLight_New({CONST}VAR directionalLightData: TQ3DirectionalLightData): TQ3LightObject; C;
  142. FUNCTION Q3DirectionalLight_GetCastShadowsState(light: TQ3LightObject; VAR castsShadows: TQ3Boolean): TQ3Status; C;
  143. FUNCTION Q3DirectionalLight_GetDirection(light: TQ3LightObject; VAR direction: TQ3Vector3D): TQ3Status; C;
  144. FUNCTION Q3DirectionalLight_SetCastShadowsState(light: TQ3LightObject; castsShadows: TQ3Boolean): TQ3Status; C;
  145. FUNCTION Q3DirectionalLight_SetDirection(light: TQ3LightObject; {CONST}VAR direction: TQ3Vector3D): TQ3Status; C;
  146. FUNCTION Q3DirectionalLight_GetData(light: TQ3LightObject; VAR directionalLightData: TQ3DirectionalLightData): TQ3Status; C;
  147. FUNCTION Q3DirectionalLight_SetData(light: TQ3LightObject; {CONST}VAR directionalLightData: TQ3DirectionalLightData): TQ3Status; C;
  148.  
  149. {*****************************************************************************
  150.  **                                                                             **
  151.  **                        Point Light                                              **
  152.  **                                                                             **
  153.  ****************************************************************************}
  154. FUNCTION Q3PointLight_New({CONST}VAR pointLightData: TQ3PointLightData): TQ3LightObject; C;
  155. FUNCTION Q3PointLight_GetCastShadowsState(light: TQ3LightObject; VAR castsShadows: TQ3Boolean): TQ3Status; C;
  156. FUNCTION Q3PointLight_GetAttenuation(light: TQ3LightObject; VAR attenuation: TQ3AttenuationType): TQ3Status; C;
  157. FUNCTION Q3PointLight_GetLocation(light: TQ3LightObject; VAR location: TQ3Point3D): TQ3Status; C;
  158. FUNCTION Q3PointLight_GetData(light: TQ3LightObject; VAR pointLightData: TQ3PointLightData): TQ3Status; C;
  159. FUNCTION Q3PointLight_SetCastShadowsState(light: TQ3LightObject; castsShadows: TQ3Boolean): TQ3Status; C;
  160. FUNCTION Q3PointLight_SetAttenuation(light: TQ3LightObject; attenuation: TQ3AttenuationType): TQ3Status; C;
  161. FUNCTION Q3PointLight_SetLocation(light: TQ3LightObject; {CONST}VAR location: TQ3Point3D): TQ3Status; C;
  162. FUNCTION Q3PointLight_SetData(light: TQ3LightObject; {CONST}VAR pointLightData: TQ3PointLightData): TQ3Status; C;
  163.  
  164. {*****************************************************************************
  165.  **                                                                             **
  166.  **                        Spot Light                                              **
  167.  **                                                                             **
  168.  ****************************************************************************}
  169. FUNCTION Q3SpotLight_New({CONST}VAR spotLightData: TQ3SpotLightData): TQ3LightObject; C;
  170. FUNCTION Q3SpotLight_GetCastShadowsState(light: TQ3LightObject; VAR castsShadows: TQ3Boolean): TQ3Status; C;
  171. FUNCTION Q3SpotLight_GetAttenuation(light: TQ3LightObject; VAR attenuation: TQ3AttenuationType): TQ3Status; C;
  172. FUNCTION Q3SpotLight_GetLocation(light: TQ3LightObject; VAR location: TQ3Point3D): TQ3Status; C;
  173. FUNCTION Q3SpotLight_GetDirection(light: TQ3LightObject; VAR direction: TQ3Vector3D): TQ3Status; C;
  174. FUNCTION Q3SpotLight_GetHotAngle(light: TQ3LightObject; VAR hotAngle: Single): TQ3Status; C;
  175. FUNCTION Q3SpotLight_GetOuterAngle(light: TQ3LightObject; VAR outerAngle: Single): TQ3Status; C;
  176. FUNCTION Q3SpotLight_GetFallOff(light: TQ3LightObject; VAR fallOff: TQ3FallOffType): TQ3Status; C;
  177. FUNCTION Q3SpotLight_GetData(light: TQ3LightObject; VAR spotLightData: TQ3SpotLightData): TQ3Status; C;
  178. FUNCTION Q3SpotLight_SetCastShadowsState(light: TQ3LightObject; castsShadows: TQ3Boolean): TQ3Status; C;
  179. FUNCTION Q3SpotLight_SetAttenuation(light: TQ3LightObject; attenuation: TQ3AttenuationType): TQ3Status; C;
  180. FUNCTION Q3SpotLight_SetLocation(light: TQ3LightObject; {CONST}VAR location: TQ3Point3D): TQ3Status; C;
  181. FUNCTION Q3SpotLight_SetDirection(light: TQ3LightObject; {CONST}VAR direction: TQ3Vector3D): TQ3Status; C;
  182. FUNCTION Q3SpotLight_SetHotAngle(light: TQ3LightObject; hotAngle: Single): TQ3Status; C;
  183. FUNCTION Q3SpotLight_SetOuterAngle(light: TQ3LightObject; outerAngle: Single): TQ3Status; C;
  184. FUNCTION Q3SpotLight_SetFallOff(light: TQ3LightObject; fallOff: TQ3FallOffType): TQ3Status; C;
  185. FUNCTION Q3SpotLight_SetData(light: TQ3LightObject; {CONST}VAR spotLightData: TQ3SpotLightData): TQ3Status; C;
  186.  
  187.  
  188.  
  189. {$ALIGN RESET}
  190. {$POP}
  191.  
  192. {$SETC UsingIncludes := QD3DLightIncludes}
  193.  
  194. {$ENDC} {__QD3DLIGHT__}
  195.  
  196. {$IFC NOT UsingIncludes}
  197.  END.
  198. {$ENDC}
  199.